#include <iostream>  
#include "mathFunction.h"


template<typename T>
T Input()
{
	while (true)
	{
		T value;
		std::cin>>value;
		std::cin.clear();
		std::cin.sync();
		if(std::cin.fail() == false) 
			return value;
		else
			std::cout<<"Некорректный ввод"<<std::endl;
	}
}
bool countAndPrint(char ch, double a, double b)
{
	switch (ch)
	{
	case '+':
		std::cout<<MyMath::sum(a,b)<<std::endl;
		break;
	case '/':
		std::cout<<MyMath::div(a,b)<<std::endl;
		break;
	case '*':
		std::cout<<MyMath::multiply(a,b)<<std::endl;
		break;
	case '-':
		std::cout<<MyMath::dif(a,b)<<std::endl;
		break;		
	default:
		std::cout<<"Нет такого оператора"<<std::endl;
		return false;
		break;
	}
	return true;
}
int main()
{
	std::cout<<"Введите число 1"<<std::endl;
	double a = Input<double>();

	std::cout<<"Введите число 2"<<std::endl;
	double b = Input<double>();

	char ch;
	do
	{
		std::cout<<"Введите оператор"<<std::endl;
		ch = Input<char>();
	} 
	while (countAndPrint(ch, a, b) == false);

	return 0; 
}

